package com.ntschy.sys.service;

import com.ntschy.common.core.entity.dataobject.SysUser;

import java.util.List;

public interface ISysUserService {


    // * ================================================基础增删改查BEGIN============================================= *

    /**
     * 分页查询用户
     * 当前查询条件：根据用户名｜用户类别查询 时间倒序
     * @param user 用户对象
     * @return 用户列表
     */
    List<SysUser> pageUser(SysUser user);

    /**
     * 新增用户
     * @param user 用户对象
     * @return 新增结果
     */
    int addUser(SysUser user);

    /**
     * 更新用户
     * @param user 用户对象
     * @return 更新结果
     */
    int updateUser(SysUser user);

    /**
     * 删除用户
     * @param userId 用户ID
     * @return 删除结果
     */
    int deleteUser(String userId);
    // * =================================================基础增删改查END============================================== *

    /**
     * 根据用户名获取用户详细信息
     * 包括角色｜单位｜部门 信息
     * 当前用到此方法场景: 登陆验证用户名密码创建token时
     * @param username 用户名
     * @return 用户详细信息
     */
    SysUser fetchUserDetailByUserName( String username);

    /**
     * 获取部门下全部用户ID
     * @param deptId 部门ID
     * @return 用户id集合
     */
    List<String> listUserIdByDept(String deptId);

    /**
     * 获取单位下全部用户ID
     * @param companyId 单位ID
     * @return 用户id集合
     */
    List<String> listUserIdByCompany(String companyId);
}
